var express = require('express');
var router = express.Router();
var mongoose = require("../model/db.js")
/*<--分类-->*/
var  classify = require("../model/classify.js")
/*<--商品详情-->*/
var  commodity = require("../model/commodity.js")
/*<--商品详情图片-->*/
var commodityPhoto = require("../model/commodityPhoto.js")
/*<--商品详情属性-->*/
var commodityProperty = require("../model/commodityProperty.js")
/*<--商品规格-->*/
var specification = require("../model/specification.js")
/*<--轮播图-->*/
var slideshow = require("../model/slideshow.js")
/*<--订单页-->*/
var orderForm = require("../model/orderForm.js")
/*<--地址管理-->*/
var address = require("../model/address.js")
/*<--购物车列表-->*/
var ShopCarList = require("../model/ShopCarList.js")
/*<--评论-->*/
var Comment = require("../model/Comment.js")
/*<--商品上架的标识-->*/
var Putaway = require("../model/Putaway.js")
/*<--商品库存-->*/
var repertory = require("../model/repertory.js")
/*<--商品库存-->*/
var qiniu = require("qiniu")
var accessKey = 'JpAo79b-2e1aKFA5XaFyfaO1ezCJErFDeBH9bhbU';
var secretKey = 'r_BnjMb7Xr_it-8o2JTH6iDb2e1yA8VaxbQZFz_8';
var bucket = "myuploadimg"
/*<--用户信息-->*/
var userInfo = require("../model/userInfo.js")


/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

/*<--获取商品分类信息-->*/
router.get("/get_Commodity",(req,res,next)=>{
  console.log(req.query)
  commodity.aggregate(
    [
      {
        $lookup:{
          from:"Putaway",
          localField:"_id",
          foreignField:"commodityID",
          as:"commodityPutaway",
        }
      },
      {
        $unwind: "$commodityPutaway"
      },
      {
        $match:{commodityPutaway:true},
      },
    ],
    function(err,result){
      if(err) throw err
      res.send(result[0])
    }
  )
  commodity.find({commodityClassify:req.query.commodityClassify},(err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--商品详情添加-->*/
router.post("/add_commodity",(req,res,next)=>{
  console.log(req.body)
  var comm = new commodity({
    //商品标题
    commodityTitle:req.body.params.name,
    // //最大价格
    maxPrice:Math.abs(req.body.params.maxPrice),
    //最低价格
    minPrice:Math.abs(req.body.params.minPrice),
    //折扣后最低单价
    unitMinPrice:Math.abs(req.body.params.minPrice),
    //折扣后最高单价
    unitMaxPrice:Math.abs(req.body.params.maxPrice),
    //商品图片数组
    commodityImg:req.body.params.commodityImg,
     //商品图片大
    commodityImgBig:[
      "http://img30.360buyimg.com/popWaterMark/jfs/t1/100481/8/13638/198606/5e5ab506E285bb4cc/5dcc81047597409c.jpg"
    ],
    //商品图片小
    commodityImgSmall:[
    ],
    //判断布局
    commodityFlag:true,
    //商品分类
    commodityClassify:req.body.params.classifyItem
  })
  comm.save(function(err,result){
    if(err) throw err
    console.log(result);
    //给对应的商品添加详情图片
    var photo = new commodityPhoto({
      //商品照片数组详情的图片
      commodityPhotos:req.body.params.commodityPhoto,
      // 用来关联商品的id
      commodityPhotoID:result._id
    })
    photo.save((err,photoResult)=>{
      if(err) throw err
      console.log(photoResult);
    })
    //给对应的商品添加商品属性
    var property = new commodityProperty({
      //商品属性
      commodityPropertys:req.body.params.commodityPropertys,
      // 关联id
      commodityPropertyID:result._id
    })
    property.save((err,propertyResult)=>{
      if(err) throw err
      console.log(propertyResult);
      res.send({code:200,msg:"添加成功",data:propertyResult})
    })
    var specifica = new specification({
      commoditySize:req.body.params.resource,
      commodityColor:req.body.params.commodityColor,
      specificationID:result._id
    })
    specifica.save((err,specificationResult)=>{
      if(err) throw err
      console.log(specificationResult);
    })
    var rea = repertory({
        repertoryId:result._id,
        // 商品库存
        commoRepertory:[ 
            {
                "size" : "S&午夜蓝",
                "repertory" : 1000
            }, 
            {
                "size" : "M&午夜蓝",
                "repertory" : 1000
            }, 
            {
                "size" : "L&午夜蓝",
                "repertory" : 1000
            }, 
            {
                "size" : "XL&午夜蓝",
                "repertory" : 1000
            }
        ],
    })
    rea.save((err,doc)=>{
      if(err) throw err
      console.log(doc)
    })
    var puta = new Putaway({
      // 商品上架的标识
      commodityPutaway:true,
      // 商品id
      commodityID:result._id
    })
    puta.save((err,doc)=>{
      res.send(doc)
    })
  })
})
/*<--查找对应的商品的结合页面-->*/
router.post("/GetCommodity",(req,res,next)=>{
  commodity.aggregate(
    [
      {
        $lookup:{
          from:"commodityPhoto",
          localField:"_id",
          foreignField:"commodityPhotoID",
          as:"commodityPhotos",
        }
      },
      {
        $unwind: "$commodityPhotos"
      },
      {
        $lookup:{
          from:"Putaway",
          localField:"_id",
          foreignField:"commodityID",
          as:"commodityPutaway",
        }
      },
      {
        $unwind: "$commodityPutaway"
      },
      {
        $lookup:{
          from:"repertory",
          localField:"_id",
          foreignField:"repertoryId",
          as:"commodityRepertory",
        }
      },
      {
        $unwind: "$commodityRepertory"
      },
      {
        $lookup:{
          from:"commodityProperty",
          localField:"_id",
          foreignField:"commodityPropertyID",
          as:"commodityPropertys"
        }
      },
      {
        $unwind: "$commodityPropertys"
      },
      {
        $lookup:{
          from:"specification",
          localField:"_id",
          foreignField:"specificationID",
          as:"specifications"
        }
      },
      {
        $unwind: "$specifications"
      },
      {
        $match:{_id:mongoose.Types.ObjectId(req.body.id)},
      },
    ],
    function(err,result){
      if(err) throw err
      res.send(result[0])
    }
  )
})
/*<--查找分类-->*/
router.get("/GetClassify",(req,res,next)=>{
  classify.find({},function(err,result){
    if(err) throw err
    res.send(result)
  })
})
/*<--首页轮播图添加-->*/
router.get("/addSlideshow",(req,res,next)=>{
  var show = new slideshow({
     //轮播图片
    slideshowPhotos:"http://img30.360buyimg.com/popWaterMark/jfs/t1/90901/17/13900/130745/5e5e1042E76758bd5/73966c79995fea6d.jpg",
     //关联商品ID
    slideshowPhotoID:"5e6b1e2aa23b753610499678"
  })
  show.save((err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--首页轮播图获取-->*/
router.get("/GetSlideshow",(req,res,next)=>{
  slideshow.find({},(err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--订单管理添加-->*/
router.all("/addOrderForm",(req,res,next)=>{
  console.log(req.body)
  var from = new orderForm({
    // 商品详情
    orderFormDetails:req.body.params.orderFormDetails,
    //订单号
    orderNumber:Math.abs(req.body.params.orderNumber),
    //订单状态   0 代付款   1 待发货   2 待收货   3 待评价  5 退款
    orderStatus:parseFloat(req.body.params.orderStatus),
    //下单时间
    orderTime:Math.abs(req.body.params.orderTime),
    //购物用户
    orderUser:req.body.params.orderUser
  })
  from.save((err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--订单查询-->*/
router.all("/GetOrder",(req,res,next)=>{
  orderForm.find({orderStatus:req.body.orderStatus},(err,result)=>{
      if(err) throw err
      res.send(result)
  })
})
/*<--地址添加-->*/
router.all("/address",(req,res,next)=>{
  var ress = new address({
    //地址
    address:req.body.params.address,
    //买家名字
    addressUserName:req.body.params.addressUserName,
    //买家电话
    userPhone:req.body.params.userPhone,
    //openId
    orderUser:req.body.params.orderUser
  })
  ress.save((err,result)=> {
    if(err) throw err
    res.send(result)
  })
})
/*<--查找shopCar-->*/
router.get("/getShopCarList",(req,res,next)=>{
  ShopCarList.find({orderUser:req.query.openId},(err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--添加购物车列表-->*/
router.post("/addShopCarList",(req,res,next)=>{
  console.log(req.body)
  if(req.body.params.length === 0){
    console.log("我没有值")
    ShopCarList.deleteMany({orderUser:req.body.openId},(err,result)=>{
        if(err) throw err
        res.send(result)
      })
  }else{
  console.log("我是有值得")
    req.body.params.forEach((item)=>{
      var car = new ShopCarList(item)
      car.save((err,saveResult)=>{
        if(err) throw err
        res.send(saveResult)
      })
    })      
  }
    // ShopCarList.remove({orderUser:item.orderUser},(err,result)=>{
    //   if(err) throw err
    //   console.log(result)
    //   var car = new ShopCarList(item)
    //   car.save((err,saveResult)=>{
    //     if(err) throw err
    //     res.send(saveResult)
    //   })
    // })
        // {
        //   //商品图片
        //   commodityImg:"https://gw.alicdn.com/tfs/TB1zTLIXLBj_uVjSZFpXXc0SXXa-400-400.jpg",
        //   //商品标题
        //   commodityTitle:"方便面",
        //   //商品价格
        //   commodityPrice:parseFloat(5),
        //   //商品数量
        //   commodityNum:parseFloat(1),
        //   //商品尺码
        //   commoditySize:"S",
        //   //商品颜色
        //   commodityColor:"白色",
        //   //用户Id
        //   orderUser:"openId"
        // }
})
/*<--添加评论-->*/
router.post("/addComment",(req,res,next)=>{
  var comment = new Comment({
      //评论内容
      CommentContent:req.body.CommentContent,
      //评论时间
      CommentTime:"123123",
      //被评论商品
      CommentCommodityId:"5e6615e7518c55183cec1d2d",
      //评论星级
      CommentStar:req.body.CommentStar,
      //评论图片
      CommentImgs:req.body.CommentImgs,
      //评论人信息
      CommentUserInfo:{
        //评论人头像
        CommentUserImg:"http://q6k6s03kn.bkt.clouddn.com/FuBxTiQreAVeDJxISf7AF5wNgRk5",
        //评论人用户名
        CommentName:"杨剑是猪"
      },
      //评论人openId
      CommentUserOpenId:"openId"
  })
  comment.save((err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--查找评论-->*/
router.get("/getComment",(req,res,next)=>{
  Comment.find({},(err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--模糊查询-->*/
router.get("/FindRegex",(req,res,next)=>{
  commodity.find({commodityTitle:{$regex:req.query.content, $options:'i'}},(err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--添加分类-->*/
router.get("/classify",function(req,res,next){
  var clazzlist = {
                    classifyItem:"家居服套装",
                    Value:"家居服套装",
                    classify:"内衣馆",
                    classifyImg:"http://img.alicdn.com/bao/uploaded/TB1BPK.QXXXXXaSaXXXSutbFXXX.jpg"
                  }
  var Clazz = new classify(clazzlist)
  Clazz.save(function(err,result){
    if(err) throw err
    res.send(result)
  })
})
/*<--添加商品上架的标识-->*/
// router.get("/addPutaway",(req,res,next)=>{
//   commodity.find({},(err,result)=>{
//     for(var i=0;i<result.length;i++){
//     }
//   })
// })
/*<--商品库存-->*/
// router.get("/addRepertory",(req,res,next)=>{
//   specification.find({},(err,result)=>{
//     console.log(result)
//     for(var i=0;i<result.length;i++){
//       var arr =[];
//       for(var j=0;j<result[i].commodityColor.length;j++){
//         for(var a=0;a<result[i].commoditySize.length;a++){
//           var key = result[i].commoditySize[a]+'&'+result[i].commodityColor[j].color
//           arr[a+j] = {
//                 size:key,
//                 repertory:1000
//               }
//           console.log(arr)
//         }
//       }
//       var params = {
//         repertoryId:result[i].specificationID,
//         // 商品库存
//         commoRepertory:[],
//       }
//       params.commoRepertory = [...params.commoRepertory,arr]
//       var rea = repertory(params)
//       rea.save((err,doc)=>{
//         if(err) throw err
//         console.log(doc)
//       })
//     }
//     res.send(result)
//   })
// })


/*<--图片上传-->*/
router.get("/uploadImg",(req,res,next)=>{
  var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
  var options = {
    scope: bucket,
  };
  var putPolicy = new qiniu.rs.PutPolicy(options);
  var uploadToken=putPolicy.uploadToken(mac);
  if(uploadToken){
    res.send({msg:200,token:uploadToken})
  }else{
    res.send({msg:"图片上传失败"})
  }
})
/*<--查询订单-->*/
// router.get("/getOrderFrom",(req,res,next)=>{
//   orderForm.find({orderStatus:"0"},(err,result)=>{
//     if(err) throw err
//     res.send(result)
//   })
// })
/*<--添加用户信息-->*/ //(注册)
router.post("/addUserInfo",(req,res,next)=>{
  var info = new userInfo({
    //用户姓名
    userName:req.body.params.userName,
    //用户密码
    userPass:req.body.params.userPass,
    //用户头像
    userImg:"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2374493925,959869190&fm=26&gp=0.jpg"
  })
  info.save((err,result)=>{
    if(err) throw err
    res.send(result)
  })
})
/*<--获取用户信息-->*/ //(登录)
router.post("/getUserInfo",(req,res,next)=>{
  console.log(req.body)
  userInfo.find({userName:req.body.params.userName},(err,result)=>{
    if(err) throw err
    console.log(result)
    if(!result){
        res.send({data:"404",msg:"找不到该用户"})
    }else if(result[0].userName==req.body.params.userName && result[0].userPass==req.body.params.userPass){
      res.send({data:result[0],msg:"登陆成功"})
    }else{
      res.send({data:"404",msg:"密码错误"})
    }
  })
})  
router.post("/getComment",(req,res,next)=>{
  commodity.find({}).skip(parseInt((req.body.params.currentPage)-1)*parseInt(req.body.params.pagesize)).limit(req.body.params.pagesize).exec((err,result)=>{
    if(err) throw err
    commodity.find({},(err,doc)=>{
      if(err) throw err
      res.send({data:result,length:doc.length})
    })
  })
})
/*<--修改商品列表-->*/ //
router.post("/updataCommodity",(req,res,next)=>{
  req.body.params.forEach((item,index)=>{
    var It = {
    //商品标题
    commodityTitle:item.commodityTitle,
    // //最大价格
    maxPrice:Math.abs(item.maxPrice),
    //最低价格
    minPrice:Math.abs(item.minPrice),
    //折扣后最低单价
    unitMinPrice:Math.abs(item.unitMinPrice),
    //折扣后最高单价
    unitMaxPrice:Math.abs(item.unitMaxPrice),
    //商品图片数组
    commodityImg:item.commodityImg,
     //商品图片大
    commodityImgBig:item.commodityImgBig,
    //商品图片小
    commodityImgSmall:item.commodityImgSmall,
    //判断布局
    commodityFlag:item.commodityFlag,
    //商品分类
    commodityClassify:item.commodityClassify
    }
    commodity.findByIdAndUpdate(item._id,It,(err,result)=>{
      if(err) throw err
      res.send(result)
    })
  })
})
/*<--更新商品列表-->*/ //
router.post("/DeleteData",(req,res,next)=>{
  req.body.params.forEach((item,index)=>{
    commodity.remove({_id:item._id},(err,result)=>{
      if(err) throw err
      res.send(result)
    })
  })
})
/*<--更改头像-->*/ //
router.post("/upDataUserImg",(req,res,next)=>{
  userInfo.findByIdAndUpdate(req.body.id,{userImg:req.body.userImg},(err,result)=>{
    if(err) throw err
    res.send({data:result,code:200,msg:"修改成功,下次登陆时自动更新"})
  })
})



module.exports = router;